﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;

namespace FoxCommerce.MVC.Domain.Entities
{
    public partial class ProductVariant
    {
        [Required, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public int ID { get; set; }

        public int ProductID { get; set; }
        [ForeignKey("ProductID")]
        public virtual Product Product { get; set; }

        public int PictureID { get; set; }
        [ForeignKey("PictureID")]
        public virtual Picture Picture { get; set; }

        public int GiftCardID { get; set; }
        [ForeignKey("GiftCardID")]
        public virtual GiftCard GiftCard { get; set; }

        public int WarehouseID { get; set; }
        [ForeignKey("WarehouseID")]
        public virtual Warehouse Warehouse { get; set; }

        public string Description { get; set; }
        public string AdminComment { get; set; }
        public string Name { get; set; }
        public string UserAgreementText { get; set; }

        [DataType(DataType.DateTime)]
        public DateTime CreatedOn { get; set; }
        [DataType(DataType.DateTime)]
        public DateTime LastUpdateTime { get; set; }
        [DataType(DataType.DateTime)]
        public DateTime AvailableStartDateTi { get; set; }
        [DataType(DataType.DateTime)]
        public DateTime AvailableEndDateTime { get; set; }

        public bool Deleted { get; set; }
        public bool Published { get; set; }
        public bool IsGiftCard { get; set; }
        public bool IsShipEnabled { get; set; }
        public bool IsFreeShipping { get; set; }
        public bool IsRecurring { get; set; }
        public bool HasUserAgreement { get; set; }
        public bool DisplayStockAvailability { get; set; }
        public bool DisplayStockQuantity { get; set; }
        public bool DisableBuyButton { get; set; }
        public bool CustomerEntersPrice { get; set; }
        public bool IsDownload { get; set; }
        public bool UnlimitedDownloads { get; set; }
        public bool HasSampleDownload { get; set; }

        public int StockQuantity { get; set; }
        public int MinStockQuantity { get; set; }
        public int OrderMinimumQuantity { get; set; }
        public int OrderMaximumQuantity { get; set; }

        public decimal Price { get; set; }
        public decimal OldPrice { get; set; }
        public decimal ProductCost { get; set; }
        public decimal AdditionalShippingCh { get; set; }

        public double Weight { get; set; }
        public double Lenght { get; set; }
        public double Width { get; set; }
        public double Height { get; set; }

        public int DownloadID { get; set; }
        public int SampleDownloadID { get; set; }
        public virtual List<ProductAttribute> Attributes { get; set; }
        public virtual List<Discount> Discounts { get; set; }
    }
}